class PassengersController < ApplicationController
  # GET /passengers
  # GET /passengers.xml
  def index
    @passengers = Passenger.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @passengers }
    end
  end

  # GET /passengers/1
  # GET /passengers/1.xml
  def show
    @passenger = Passenger.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @passenger }
    end
  end

  # GET /passengers/new
  # GET /passengers/new.xml
  def new
		@user = User.new
    @passenger = Passenger.new
		@tipdocs = DocumentType.order("nombre").all

    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @passenger }
    end
  end

  # GET /passengers/1/edit
  def edit
    @passenger = Passenger.find(params[:id])
		@tipdocs
  end

  # POST /passengers
  # POST /passengers.xml
  def create
		# Creacion del usuario
	  @user = User.new(params[:user])

		if @user.save
			# Creacion del pasajero

			# Identifica si el pasajero ya se encuentra en la base de datos por compras o reservas anteriores
			@p_aux = Passenger.where("numDocumento = ?", params[:numDocumento])

			if @p_aux.size > 0
				# Si ya estaba registrado el pasajero
				@passenger = @p_aux[0]
			else
				@passenger = Passenger.new
				@passenger.nombre = params[:nombre]
				@passenger.ape_paterno = params[:ape_paterno]
				@passenger.ape_materno = params[:ape_materno]
				@passenger.fechaNacimiento = params[:fechaNacimiento]
				@passenger.numDocumento = params[:numDocumento]
				@passenger.document_type_id = params[:document_type_id]
				if params[:sexo] == "Masculino"
					@passenger.sexo = 0
				elsif params[:sexo] == "Femenino"
					@passenger.sexo = 1
				end
			end

			# Se asignan los atributos
			@passenger.nacionalidad = params[:nacionalidad]
			@passenger.direccion = params[:direccion]
			@passenger.telefono = params[:telefono]
			@passenger.esfrecuente = 1
			@passenger.puntos = params[:puntos]

			respond_to do |format|
			  if @passenger.save
		      format.html { redirect_to(passengers_path, :notice => 'Se creo la cuenta de pasajero frecuente  satisfactoriamente.') }
			  else
			    format.html { render :action => "new", :notice => 'Intente el registro nuevamente.' }
			  end
			end
		else
	    respond_to do |format|
	      format.html { render :action => "new", :notice => 'Intente el registro nuevamente.' }
	    end
		end
  end

  # PUT /passengers/1
  # PUT /passengers/1.xml
  def update
    @passenger = Passenger.find(params[:id])

    respond_to do |format|
      if @passenger.update_attributes(params[:passenger])
        format.html { redirect_to(@passenger, :notice => 'Passenger was successfully updated.') }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @passenger.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /passengers/1
  # DELETE /passengers/1.xml
  def destroy
    @passenger = Passenger.find(params[:id])
    @passenger.destroy

    respond_to do |format|
      format.html { redirect_to(passengers_url) }
      format.xml  { head :ok }
    end
  end
end
